//+--------------------------------------------------------------------
//| Copyright(c) 2012 - an.vuongngocduy					
//| This file is a part of Compact Game Engine (CGE)	
//+--------------------------------------------------------------------
#ifndef __CGE_ENUMS_H__
#define __CGE_ENUMS_H__

namespace cge
{
	namespace gfx
	{
		//! Pixel format
		struct PixelFormat
		{
			enum Enum
			{
				/// 16-bits represents 65536 shades of gray
				Bpp16_GreyScale,

				/// Default 16-bits color format . 5-bits for each red and blue , 6-bits for green
				Bpp16_R5G6B5,

				/// 16-bits color format . 5-bits is used for each red, green and blue , the remain 1-bit is for alpha 
				Bpp16_R5G5B5A1,

				/// 16-bits color format . 4-bits is used for each component : red, green, blue and alpha  
				Bpp16_R4G4B4A4,

				/// Default 24-bits color format . No alpha . 8-bits is used for each red, green and blue
				Bpp24_R8G8B8,

				/// Default 32-bits color format . 8-bits is used for each component : red, green, blue and alpha   
				Bpp32_R8G8B8A8,

				/// Unidentified pixel format
				Unknown
			};
		};

		typedef PixelFormat::Enum EPixelFormat;
	}

	namespace io
	{
		//!FileOpenMode
		struct FileOpenMode
		{
			enum Enum
			{
				OpenRead		=	0x0001,
				
				OpenWrite		=	0x0010,
				
				OpenReadWrite	=	0x0011,
				
				CreateWrite		=	0x0110,
				
				CreateReadWrite =	0x0111,
				
				Append			=	0x1111
			};
		};

		typedef FileOpenMode::Enum EFileOpenMode;
	}
}

#endif//__CGE_ENUMS_H__	